import org.junit.Test;

import static junit.framework.Assert.*;
import org.junit.*;


public class LiczbaTest {
    @Before
    public void setUp() {
        Liczba l = new Liczba(10);
    }
    @Test(timeout = 10)
    public void testLiczba() {
        Liczba l = new Liczba();
        assertNotNull(l);
        assertTrue(l.returnLiczba() == 0);

        Liczba l1 = new Liczba(15);
        assertFalse(l1.returnLiczba() != 15);
    }
    
    @Test
    public final void podstawa_17(){
      Liczba liczba = new Liczba(20);
      assertEquals("Program nie dziala dla podstawy 17!", "Base[17] = 13", liczba.LiczbaAtBase(17));
    }


    @Test(expected = IllegalArgumentException.class)
    public void testSetLiczbaException() throws Exception {
        Liczba l = new Liczba(50);
        l.setLiczba(-1);

    }

    @Test(expected = IllegalArgumentException.class)
    public void testSetLiczba() throws Exception {
        Liczba l = new Liczba(50);
        assertEquals(l.returnLiczba(), 50);
        l.setLiczba(100);
        assertEquals(l.returnLiczba(), 100);
        l.setLiczba(-1);

    }

    @Test
    public void testReturnLiczba() throws Exception {
        Liczba l = new Liczba(12);
        assertTrue(l.returnLiczba() == 12);

    }

    @Test
    public void testLiczbaAtBase() throws Exception {
        Liczba l = new Liczba(7);
        assertEquals("Base[2] = 111", l.LiczbaAtBase(2));
        assertEquals("Base[8] = 7", l.LiczbaAtBase(8));

    }

    @Ignore
    public void testLiczbyAtBases() throws Exception {
        Liczba l = new Liczba(45);
        String[] liczby = l.LiczbyAtBases();
        assertEquals(liczby[8], "Base[10] = 45");
        assertEquals(liczby[14], "Base[16] = 231");
    }
}